package com.woody.aggregate.application.service.msgsendrule;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.woody.aggregate.infrastructure.msgsendrule.dto.MsgSendRuleInfoDTO;
import com.woody.aggregate.infrastructure.msgsendrule.dto.SaveMsgSendRuleDTO;
import com.woody.aggregate.msgsendrule.req.ListMsgSendRuleReq;
import com.woody.aggregate.msgsendrule.vo.MsgSendRuleVo;

import java.util.Collection;

/**
 * <p>
 * 消息弹窗规则 服务类
 * </p>
 *
 * @author author
 * @since 2025-03-20
 */
public interface IMsgSendRuleService {

    /**
     * 分页查询弹窗规则列表
     * <br />
     * @param request
     * @return
     */
    Page<MsgSendRuleVo> pageListRule(ListMsgSendRuleReq request);

    /**
     * 查询规则详情
     * <br />
     * @param ruleId
     * @return
     */
    MsgSendRuleInfoDTO queryRuleDetailById(Integer ruleId);

    /**
     * 新增规则
     * <br />
     * @param dto
     * @return
     */
    Integer addRule(SaveMsgSendRuleDTO dto, Collection<Long> userIds);

    /**
     * 更新规则
     * <br />
     * @param ruleId
     * @param dto
     */
    void editRule(Integer ruleId, SaveMsgSendRuleDTO dto);

    /**
     * 删除规则
     * <br />
     * @param ruleId
     */
    void deleteRule(Integer ruleId);
}
